// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers

#ifndef SAFE_RELEASE
#define SAFE_RELEASE(x) { if (x) { x->Release(); x = NULL; } }
#endif

#ifndef SAFE_DELETE
#define SAFE_DELETE(x) { if (x) { delete x; x = NULL; } }
#endif

#pragma warning(disable : 4995)
#pragma warning(disable : 4127)
#pragma warning(disable : 4706)

#define _CRT_RAND_S

#define MAX_LOADSTRING 100 // maximum length of application name

// Memory leak debug:
#ifdef _DEBUG
	#define _CRTDBG_MAP_ALLOC
	#include <crtdbg.h>
#endif

// Windows Header Files:
#include <windows.h>
#include <windowsx.h>
#include <commdlg.h>
#include <uuids.h>
#include <commctrl.h>
#include <assert.h>
#include <shlwapi.h>

// C RunTime Header Files:
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <strsafe.h>

// C Math Headers:
#include <cmath>

// STL Headers:
#include <map>
#include <list>
#include <deque>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <stdexcept>
